
package io.fabric8.openclustermanagement.api.model;

import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.fabric8.kubernetes.api.builder.Editable;
import io.fabric8.kubernetes.api.model.Container;
import io.fabric8.kubernetes.api.model.ContainerPort;
import io.fabric8.kubernetes.api.model.EnvVar;
import io.fabric8.kubernetes.api.model.IntOrString;
import io.fabric8.kubernetes.api.model.LabelSelector;
import io.fabric8.kubernetes.api.model.LocalObjectReference;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.ObjectReference;
import io.fabric8.kubernetes.api.model.PersistentVolumeClaim;
import io.fabric8.kubernetes.api.model.PodTemplateSpec;
import io.fabric8.kubernetes.api.model.ResourceRequirements;
import io.fabric8.kubernetes.api.model.Volume;
import io.fabric8.kubernetes.api.model.VolumeMount;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta1.ObservabilityAddon;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta1.ObservabilityAddonList;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta1.ObservabilityAddonStatus;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta1.StatusCondition;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta2.AdvancedConfig;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta2.CacheConfig;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta2.CommonSpec;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta2.CompactSpec;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta2.MultiClusterObservability;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta2.MultiClusterObservabilityList;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta2.MultiClusterObservabilitySpec;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta2.MultiClusterObservabilityStatus;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta2.ObservatoriumConfig;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta2.RetentionConfig;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta2.RuleSpec;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.apps.v1beta2.StorageConfig;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.shared.Condition;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.shared.ObservabilityAddonSpec;
import io.fabric8.openclustermanagement.api.model.multiclusterobservabilityoperator.shared.PreConfiguredStorage;
import io.sundr.builder.annotations.Buildable;
import io.sundr.builder.annotations.BuildableReference;
import lombok.EqualsAndHashCode;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

@JsonDeserialize(using = com.fasterxml.jackson.databind.JsonDeserializer.None.class)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
    "apiVersion",
    "kind",
    "metadata",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_shared_Condition",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_shared_ObservabilityAddonSpec",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_shared_PreConfiguredStorage",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_ObservabilityAddon",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_ObservabilityAddonList",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_ObservabilityAddonStatus",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_StatusCondition",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_AdvancedConfig",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_CacheConfig",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_CommonSpec",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_CompactSpec",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservability",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservabilityList",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservabilitySpec",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservabilityStatus",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_ObservatoriumConfig",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_RetentionConfig",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_RuleSpec",
    "github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_StorageConfig"
})
@ToString
@EqualsAndHashCode
@Setter
@Accessors(prefix = {
    "_",
    ""
})
@Buildable(editableEnabled = false, validationEnabled = false, generateBuilderPackage = false, lazyCollectionInitEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder", refs = {
    @BuildableReference(ObjectMeta.class),
    @BuildableReference(LabelSelector.class),
    @BuildableReference(Container.class),
    @BuildableReference(PodTemplateSpec.class),
    @BuildableReference(ResourceRequirements.class),
    @BuildableReference(IntOrString.class),
    @BuildableReference(ObjectReference.class),
    @BuildableReference(LocalObjectReference.class),
    @BuildableReference(PersistentVolumeClaim.class),
    @BuildableReference(EnvVar.class),
    @BuildableReference(ContainerPort.class),
    @BuildableReference(Volume.class),
    @BuildableReference(VolumeMount.class)
})
@Generated("jsonschema2pojo")
public class OpenClusterManagementObservabilitySchema implements Editable<OpenClusterManagementObservabilitySchemaBuilder>
{

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_shared_Condition")
    private Condition githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedCondition;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_shared_ObservabilityAddonSpec")
    private ObservabilityAddonSpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedObservabilityAddonSpec;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_shared_PreConfiguredStorage")
    private PreConfiguredStorage githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedPreConfiguredStorage;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_ObservabilityAddon")
    private ObservabilityAddon githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddon;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_ObservabilityAddonList")
    private ObservabilityAddonList githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonList;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_ObservabilityAddonStatus")
    private ObservabilityAddonStatus githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonStatus;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_StatusCondition")
    private StatusCondition githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1StatusCondition;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_AdvancedConfig")
    private AdvancedConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2AdvancedConfig;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_CacheConfig")
    private CacheConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CacheConfig;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_CommonSpec")
    private CommonSpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CommonSpec;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_CompactSpec")
    private CompactSpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CompactSpec;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservability")
    private MultiClusterObservability githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservability;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservabilityList")
    private MultiClusterObservabilityList githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityList;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservabilitySpec")
    private MultiClusterObservabilitySpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilitySpec;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservabilityStatus")
    private MultiClusterObservabilityStatus githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityStatus;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_ObservatoriumConfig")
    private ObservatoriumConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2ObservatoriumConfig;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_RetentionConfig")
    private RetentionConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RetentionConfig;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_RuleSpec")
    private RuleSpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RuleSpec;
    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_StorageConfig")
    private StorageConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2StorageConfig;

    /**
     * No args constructor for use in serialization
     * 
     */
    public OpenClusterManagementObservabilitySchema() {
    }

    public OpenClusterManagementObservabilitySchema(Condition githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedCondition, ObservabilityAddonSpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedObservabilityAddonSpec, PreConfiguredStorage githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedPreConfiguredStorage, ObservabilityAddon githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddon, ObservabilityAddonList githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonList, ObservabilityAddonStatus githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonStatus, StatusCondition githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1StatusCondition, AdvancedConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2AdvancedConfig, CacheConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CacheConfig, CommonSpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CommonSpec, CompactSpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CompactSpec, MultiClusterObservability githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservability, MultiClusterObservabilityList githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityList, MultiClusterObservabilitySpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilitySpec, MultiClusterObservabilityStatus githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityStatus, ObservatoriumConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2ObservatoriumConfig, RetentionConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RetentionConfig, RuleSpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RuleSpec, StorageConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2StorageConfig) {
        super();
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedCondition = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedCondition;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedObservabilityAddonSpec = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedObservabilityAddonSpec;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedPreConfiguredStorage = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedPreConfiguredStorage;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddon = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddon;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonList = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonList;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonStatus = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonStatus;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1StatusCondition = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1StatusCondition;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2AdvancedConfig = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2AdvancedConfig;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CacheConfig = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CacheConfig;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CommonSpec = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CommonSpec;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CompactSpec = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CompactSpec;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservability = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservability;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityList = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityList;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilitySpec = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilitySpec;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityStatus = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityStatus;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2ObservatoriumConfig = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2ObservatoriumConfig;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RetentionConfig = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RetentionConfig;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RuleSpec = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RuleSpec;
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2StorageConfig = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2StorageConfig;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_shared_Condition")
    public Condition getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedCondition() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedCondition;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_shared_Condition")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedCondition(Condition githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedCondition) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedCondition = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedCondition;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_shared_ObservabilityAddonSpec")
    public ObservabilityAddonSpec getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedObservabilityAddonSpec() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedObservabilityAddonSpec;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_shared_ObservabilityAddonSpec")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedObservabilityAddonSpec(ObservabilityAddonSpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedObservabilityAddonSpec) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedObservabilityAddonSpec = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedObservabilityAddonSpec;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_shared_PreConfiguredStorage")
    public PreConfiguredStorage getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedPreConfiguredStorage() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedPreConfiguredStorage;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_shared_PreConfiguredStorage")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedPreConfiguredStorage(PreConfiguredStorage githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedPreConfiguredStorage) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedPreConfiguredStorage = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiSharedPreConfiguredStorage;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_ObservabilityAddon")
    public ObservabilityAddon getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddon() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddon;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_ObservabilityAddon")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddon(ObservabilityAddon githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddon) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddon = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddon;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_ObservabilityAddonList")
    public ObservabilityAddonList getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonList() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonList;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_ObservabilityAddonList")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonList(ObservabilityAddonList githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonList) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonList = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonList;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_ObservabilityAddonStatus")
    public ObservabilityAddonStatus getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonStatus() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonStatus;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_ObservabilityAddonStatus")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonStatus(ObservabilityAddonStatus githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonStatus) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonStatus = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1ObservabilityAddonStatus;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_StatusCondition")
    public StatusCondition getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1StatusCondition() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1StatusCondition;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta1_StatusCondition")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1StatusCondition(StatusCondition githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1StatusCondition) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1StatusCondition = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta1StatusCondition;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_AdvancedConfig")
    public AdvancedConfig getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2AdvancedConfig() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2AdvancedConfig;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_AdvancedConfig")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2AdvancedConfig(AdvancedConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2AdvancedConfig) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2AdvancedConfig = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2AdvancedConfig;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_CacheConfig")
    public CacheConfig getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CacheConfig() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CacheConfig;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_CacheConfig")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CacheConfig(CacheConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CacheConfig) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CacheConfig = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CacheConfig;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_CommonSpec")
    public CommonSpec getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CommonSpec() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CommonSpec;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_CommonSpec")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CommonSpec(CommonSpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CommonSpec) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CommonSpec = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CommonSpec;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_CompactSpec")
    public CompactSpec getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CompactSpec() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CompactSpec;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_CompactSpec")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CompactSpec(CompactSpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CompactSpec) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CompactSpec = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2CompactSpec;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservability")
    public MultiClusterObservability getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservability() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservability;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservability")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservability(MultiClusterObservability githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservability) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservability = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservability;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservabilityList")
    public MultiClusterObservabilityList getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityList() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityList;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservabilityList")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityList(MultiClusterObservabilityList githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityList) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityList = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityList;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservabilitySpec")
    public MultiClusterObservabilitySpec getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilitySpec() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilitySpec;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservabilitySpec")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilitySpec(MultiClusterObservabilitySpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilitySpec) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilitySpec = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilitySpec;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservabilityStatus")
    public MultiClusterObservabilityStatus getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityStatus() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityStatus;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_MultiClusterObservabilityStatus")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityStatus(MultiClusterObservabilityStatus githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityStatus) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityStatus = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2MultiClusterObservabilityStatus;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_ObservatoriumConfig")
    public ObservatoriumConfig getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2ObservatoriumConfig() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2ObservatoriumConfig;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_ObservatoriumConfig")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2ObservatoriumConfig(ObservatoriumConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2ObservatoriumConfig) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2ObservatoriumConfig = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2ObservatoriumConfig;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_RetentionConfig")
    public RetentionConfig getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RetentionConfig() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RetentionConfig;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_RetentionConfig")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RetentionConfig(RetentionConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RetentionConfig) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RetentionConfig = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RetentionConfig;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_RuleSpec")
    public RuleSpec getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RuleSpec() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RuleSpec;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_RuleSpec")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RuleSpec(RuleSpec githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RuleSpec) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RuleSpec = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2RuleSpec;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_StorageConfig")
    public StorageConfig getGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2StorageConfig() {
        return githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2StorageConfig;
    }

    @JsonProperty("github_com_open-cluster-management_multicluster-observability-operator_operators_multiclusterobservability_api_v1beta2_StorageConfig")
    public void setGithubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2StorageConfig(StorageConfig githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2StorageConfig) {
        this.githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2StorageConfig = githubComOpenClusterManagementMulticlusterObservabilityOperatorOperatorsMulticlusterobservabilityApiV1beta2StorageConfig;
    }

    @JsonIgnore
    public OpenClusterManagementObservabilitySchemaBuilder edit() {
        return new OpenClusterManagementObservabilitySchemaBuilder(this);
    }

    @JsonIgnore
    public OpenClusterManagementObservabilitySchemaBuilder toBuilder() {
        return edit();
    }

}
